﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	[DataContract]
	public enum ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
		[EnumMember(Value = "{\"Ссылка\":\"93232a81-f1bc-4d71-836c-8955232e176a\", \"Представление\":\"ПоТрудовомуЗаконодательству\"}")]
		ПоТрудовомуЗаконодательству = 0,//В соответствии с частями третьей и четвертой ст. 139 ТК РФ
		[EnumMember(Value = "{\"Ссылка\":\"7b05bb4d-2984-4690-ad5d-1851398340c1\", \"Представление\":\"ПоКолдоговору\"}")]
		ПоКолдоговору = 1,//В соответствии с коллективным договором
	}
	public static partial class ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка_Значения//:ПеречислениеСсылка
	{
		public static readonly Guid ПоТрудовомуЗаконодательству = new Guid("55896c83-2e23-6a17-4d71-f1bc93232a81");//В соответствии с частями третьей и четвертой ст. 139 ТК РФ
		public static readonly Guid ПоКолдоговору = new Guid("51185dad-8339-c140-4690-29847b05bb4d");//В соответствии с коллективным договором
		public static ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка Получить(this ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка Получить(this ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка Значение, Guid Ссылка)
		{
			if(Ссылка == ПоТрудовомуЗаконодательству)
			{
				return ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка.ПоТрудовомуЗаконодательству;
			}
			else if(Ссылка == ПоКолдоговору)
			{
				return ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка.ПоКолдоговору;
			}
			return ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка.ПустаяСсылка;
		}
		public static byte[] Ключ(this ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка Значение)
		{
			switch (Значение)
			{
				case ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка.ПоТрудовомуЗаконодательству: return ПоТрудовомуЗаконодательству;
				case ПорядокОпределенияРасчетногоПериодаСреднегоЗаработка.ПоКолдоговору: return ПоКолдоговору;
			}
			return Guid.Empty;
		}
	}
}